 TTL Low level organization and constants      File => LOWL00
 OPT LLOLST
 ORG &9630
;ECONET VERSION 3 : B.ROBERTSON 30:1:82

;BBC MACHINE MANIFEST CONSTANTS.

;HARDWARE DEPENDANT CONSTANTS

ADLC * &FEA0 ;6854 SERIAL CONTROL CHIP LOCATION
 [ SECRET = NO
STNID * &FE18 ;LOCATION OF STATION ID ADDRESS.
INTON * &FE20 ;INTERUPT ENABLE ADDRESS
INTOFF * &FE18 ;INTERUPT DISABLE ADDRESS
 |
STNID * &0281 ;LOCATION OF STATION ID ADDRESS.
INTON * &FE3C ;INTERUPT ENABLE ADDRESS
INTOFF * &FE38 ;INTERUPT DISABLE ADDRESS
 ]
ROMSWW * &FE30 ;ROM SWITCH WRITE LOCATION
VIA * &FE40 ;6522 LOCATION USED FOR GENERATING IRQ


;MOS DEPENDANT CONSTANTS
ROMSWR * &00F4 ;ROM SWITCH READ LOCATION
tADDRl * &0406 ;ADDRESS OF TUBE SOFTWARE
PAGEZ * &00A0 ;PAGE ZERO VARIABLE LOCATIONS
RAMCDE * &0D00 ;ORIGIN OF RAM CODE
VAR * &0D38 ;SCRATCH VARIABLE LOCATIONS.USED WHEN ACTIVE


;LOCATIONS USED IN THE NFS CODE, *******************FIX THIS

JEZZ * &8000 ;JUMP FOR REMOTE PROC CALLS
SSTATE * &D64 ;STATION STATE CONTROL BLOCKS EXIST
IMASK * &D63 ;IMMEDIATE OPERATION MASK PERMIT IMMEDIATE OPERATIONS
TUBEFL * &D67 ;FLAGS WHETHER TUBE PRESENT
TXCLRl * &D62 ;FLAGS WHETHER CLEAR FOR USER TO TX
MASKST * &D65 ;STORES VALUE OF IM PROT MASK WHEN JSR
MSIZE * &04 ;MACHINE AREA FOUR BYTES TO PEEK

;STATIC PAGE OFFSET CONSTANTS
BUFCNT * &7F ;NUMBER OF PARAMETERS IN BUFFER
STNNO * &80 ;CALLING IM OP STATION
PROBUF * &82 ;PROCEDURE PARAMETER BUFFER
LLEVST * &08 ;LOW LEVEL STATE

;USEFUL CONSTANTS
DONTC * &00 ;DONT CARE CONSTANT

;6854 LOCATIONS
CReg1 * ADLC +&00 ;CONTROL REGISTER 1  C1B0=X
CReg2 * ADLC +&01 ;CONTROL REGISTER 2  C1B0=0
CReg3 * ADLC +&01 ;CONTROL REGISTER 3  C1B0=1
CReg4 * ADLC +&03 ;CONTROL REGISTER 4  C1B0=1
RXBYTE * ADLC +&02 ;RECEIVE BYTE       C1B0=X
SReg1 * ADLC +&00 ;STATUS REGISTER 1     C1B0=X
SReg2 * ADLC +&01 ;STATUS REGISTER 2     C1B0=X
TXBYTE * ADLC +&02 ;TRANSMIT NEXT BYTE C1B0=X
TXLAST * ADLC +&03 ;TRANSMIT LAST BYTE C1B0=0

;ADLC STATUS REGISTER A EVENT CONSTANTS
S2RQ * &02 ;STATUS REGISTER 2 REQUEST
CTS * &10 ;CLEAR TO SEND
FD * &08 ;FLAG DETECT
TDRA * &40 ;TRANSMIT DATA REGISTER AVAILABLE

;STATUS REGISTER B EVENT CONSTANTS
DCD * &20 ;DATA CARRIER DETECT
RXIDLE * &04 ;INACTIVE IDLE RECEIVED
FV * &02 ;FRAME VALID
RDA * &80 ;RECEIVE DATA AVAILABLE
CRC * &10 ;FRAME CHECKSUM ERROR
AP * &01 ;ADDRESS PRESENT.


;SCOUT BUFFER FORMAT
SRLO * &00
SRHI * &01
CNTL * &02 ;ZERO FOR IMMEDIATE OPERATIONS
PORTn * &03
ADTO1 * &04
ADTO2 * &05
ADTO3 * &06
ADTO4 * &07
ADFR1 * &08
ADFR2 * &09
ADFR3 * &0A
ADFR4 * &0B
SBSIZE * &0C ;SIZE OF SCOUT BUFFER

;CONTROL BLOCK FORMAT - LOCATED ANYWHERE IN MEMORY
CBCNTL * &00 ;N.B. SEE CONTROL BYTE VALUES VALID CONTROL BLOCK
CBPORT * &01
CBSRLO * &02 ;N.B. SEE STATION ID VALUES CONTROL BLOCK SOURCE LO
CBSRHI * &03
CBSALO * &04 ;CONTROL BLOCK DATA START ADDRESS LO
CBSAHI * &05
CBSAH1 * &06
CBSAH2 * &07
CBEALO * &08 ;CONTROL BLOCK DATA END ADDRESS LO
CBEAHI * &09
CBEAH1 * &0A
CBEAH2 * &0B
XTRA1L * &0C
XTRA1H * &0D
XTRA2L * &0E
XTRA2H * &0F


;CONTROL BYTE VALUE IMMEDIATE CONSTANTS.
IPEEK * &81 ;REMOTE PEEK N.B. MUST BE LOWEST NUMBER
IPOKE * &82 ;REMOTE POKE
IRTN * &83 ;REMOTE ROUTINE CALL
IPROCE * &84 ;REMOTE EVENT PROCEDURE CALL
IPROCH * &85 ;REMOTE HIGH LEVEL PROCEDURE CALL
ISTOP * &86 ;REMOTE STOP
ISTRT * &87 ;REMOTE RESTART
IMACH * &88 ;MACHINE TYPE PEEK.

;PORT BYTE VALUE CONSTANTS.
ANYPRT * &00 ;ANY PORT ACCEPTED

;STATION ID RESERVED CONSTANTS
BDCAST * &FF ;BROADCAST ADDRESS
PRIVID * &F0 ;N.B STATIONS 240-254 NOT SUBJECT TO REMOTE IMMED OP CONTROL MASK
NETnum * &00 ;NETWORK ID CONSTANT

;STATION STATE CONSTANTS EXIST UNTIL CHANGED
JEZZEX * &80 ;JEZZ RX CONTROL BLOCK EXISTS
RXCBEX * &40 ;RXCBLOCK EXISTS N.B. MUST BE $80 FOR MINUS TEST
STOP * &04 ;FLAGS A STOPPED STATE


;NET STATE FLAG BITS RESET EVERY MESSAGE
DACK * &80 ;FLAGS A DATA ACK PACKET
BCAST * &40 ;SIGNALS A BROADCAST MESSAGE HAS BEEN RECEIVED
ONEBYT * &20 ;FLAGS ONE BYTE LEFT FOR THE TUBE
TUBEf * &02 ;FLAGS THAT DATA IS FOR SECOND PROCESSOR
SHORT * &01 ;2 WAY HANDSHAKE

;STATE1 CONSTANTS INDICATE INFO IN SCOUT PACKET
X4BYT * &80 ;XTRA 4 BYTES TO BE TRANSMITTED
X8BYT * &40 ;XTRA 8 BYTES TO BE TRANSMITTED

;N.B. TXDAPT,RXYOFF,TXPAGE ARE SHARED WITH RX VARS
;TRANSMITTER STATION NETWORK VARIABLE LOCATIONS
TXCBPT * PAGEZ +&00 ;TX CNTRL BLOCK POINTER. ONE BLOCK ONLY
TXDAPT * PAGEZ +&04 ;16 BIT POINTER OF DATA TO TX
TXLINK * VAR +&13 ;TRANSMIT SUBROUTINE LINKAGE
TXPAGE * PAGEZ +&03 ;NUMBER OF PAGES TO TX
TXYOFF * PAGEZ +&02 ;Y INDEX OF DATA TO TX
TXCNT * VAR +&17 ;COUNT FOR TX SCOUT PACKET
ENTXCT * VAR +&18 ;END COUNT OF TX PACKET
XTRADR * VAR +&1B ;USED FOR IM OP XTRA ADDR STORE 4 BYTES
TXBUFl * &0D20 ;SCOUT TRANSMIT BUFFER
TXDELO * TXBUFl +&00
TXDEHI * TXBUFl +&01
TXSRLO * TXBUFl +&02
TXSRHI * TXBUFl +&03
TXCNTL * TXBUFl +&04
TXPORT * TXBUFl +&05
TXADRT * TXBUFl +&06
TXADRF * TXBUFl +&0A


;RECEIVER STATION NETWORK VARIABLE LOCATIONS
RXCBPT * PAGEZ +&06 ;RX CNTRL BLOCK POINTER. POINTS TO ARRAY OF CNTRL BLOCKS
RXDAPT * PAGEZ +&04 ;16 BIT POINTER OF DATA TO RX
SCOUTB * VAR +&05 ;SCOUT BUFFER LOCATION
SBSRLO * SCOUTB +SRLO
SBSRHI * SCOUTB +SRHI
SBCNTL * SCOUTB +CNTL ;ZERO FOR IMMEDIATE OPERATIONS
SBPORT * SCOUTB +PORTn
SBADT1 * SCOUTB +ADTO1
SBADT2 * SCOUTB +ADTO2
SBADT3 * SCOUTB +ADTO3
SBADT4 * SCOUTB +ADTO4
SBADF1 * SCOUTB +ADFR1
SBADF2 * SCOUTB +ADFR2
SBADF3 * SCOUTB +ADFR3
SBADF4 * SCOUTB +ADFR4
RXPAGE * PAGEZ +&03 ;NUMBER OF PAGES TO RX
RXYOFF * PAGEZ +&02 ;Y INDEX OF DATA TO RX
NSTATE * VAR +&12 ;NETWORK STATUS BITS INDICATE STATE
STORE * VAR +&19 ;IRQ STORE OF SHIFT REG BITS
IRQSTR * VAR +&1F ;IRQ STORE FOR VARIABLES COS ITS SLOW. 5 BYTES
TDIR * VAR +&24 ;TUBE DIRECTION
LSTBYT * VAR +&25 ;VALUE OF THE LAST BYTE FOR TUBE
ACTIVE * &D66 ;INDICATES IF NMI CODE IS ACTIVE

 [ 1=0
FAST1 * FALSE
FAST2 * FALSE
FAST3 * FALSE
FAST4 * FALSE
FAST5 * FALSE
FAST6 * FALSE
FAST7 * FALSE
FAST8 * FALSE
FAST9 * FALSE
FAST10 * FALSE
FAST11 * FALSE
FAST12 * FALSE
 ]
 LNK LOWL01
